package cn.edu.sgu.www.pms.service;

import cn.edu.sgu.www.pms.dto.MenuTreeDTO;
import cn.edu.sgu.www.pms.dto.UserMenuDTO;
import cn.edu.sgu.www.pms.easyui.Tree;
import cn.edu.sgu.www.pms.vo.MenuVO;

import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface UserMenuService {

    /**
     * 控制菜单显示
     * @param menuTreeDTO 菜单树信息
     */
    void control(MenuTreeDTO menuTreeDTO);

    /**
     * 控制菜单显示
     * @param menuTreeDTO 菜单树信息
     */
    void display(MenuTreeDTO menuTreeDTO);

    /**
     * 设置菜单排序
     * @param menuId 菜单ID
     * @param pxh 排序号
     */
    void setSort(String menuId, Integer pxh);

    /**
     * 设置菜单排序
     * @param userMenuDTO 用户菜单信息
     */
    void updateSort(UserMenuDTO userMenuDTO);

    /**
     * 查询用户的侧栏菜单
     * @return List<MenuVO>
     */
    List<MenuVO> selectLeftMenu();

    /**
     * 查询当前用户的菜单树
     * @return List<Tree<Void>>
     */
    List<Tree<Void>> selectMenuTree();

    /**
     * 查询用户侧栏菜单
     * @param userId 用户ID
     * @return JsonResult<List<MenuVO>>
     */
    List<MenuVO> getLeftMenu(String userId);

    /**
     * 查询用户菜单树
     * @param userId 用户ID
     * @return List<Tree<Void>>
     */
    List<Tree<Void>> getMenuTree(String userId);
}